package com.koshi.platfrom.async.callback;

import com.koshi.platfrom.async.wrapper.TaskWrapper;

import java.util.Map;

/**
 *
 * @param <T>
 * @param <V>
 */
@FunctionalInterface
public interface ITask<T,V>{
    /**
     * 执行耗时操作的地方，比如RPC接口调用。
     * @param object
     * @param taskWrapperMap
     * @return
     */
    V action(T object, Map<String, TaskWrapper>taskWrapperMap);

    /**
     * 整个Task执行异常，或者超时，会回调defaultValue()。
     * @return
     */
    default V defaultValue(){
        return null;
    }
}
